<?php
namespace app\index\controller;
use think\Db;
use think\Request;
use Xhat\Payjs\Payjs;
use think\Controller;
class Order extends Controller{
    public function index()
    {
        $config = [
            'mchid' => '你的muchid',   // 配置商户号
            'key'   => '你的key',   // 配置通信密钥
        ];
        $trade_no = time().rand(9999,100000);
        $data['trade_no'] = $trade_no;
        $data['status'] = 0;
        $data['uid'] =session('id')?session('id'):1;
        $data['pic'] = input('post.pic');
        model('Order')->save($data);
 // 初始化
        $payjs = new Payjs($config);
        $data = [
            'body' => '时光荏苒订单',                        // 订单标题
            'total_fee' => 20,                           // 订单金额
            'out_trade_no' => $trade_no,                   // 订单号
            'attach' => 'test_order_attach',            // 订单附加信息(可选参数)
            'notify_url' => 'http://meizhuo.wanyucheng.com/callback',    // 异步通知地址(可选参数)
        ];
        $result = $payjs->native($data);
        if($result['return_code']==1){
            $res  = [
                'code'=>1,
                'msg' => '获取微信支付二维码成功',
                'code_url' => $result['code_url'],
                'trade_no' => $trade_no
            ];

        }else{
            $res  = [
                'code'=>0,
                'msg' => '获取微信支付二维码失败'
            ];
        }
        return json($res);
//        return view();
    }
    public function callback(){
        $config = [
            'mchid' => '你的muchid',   // 配置商户号
            'key'   => '你的key',   // 配置通信密钥
        ];
        $payjs = new Payjs($config);

        $data = input('post.');

        if($data['return_code'] == 1){
            // 1.验签逻辑
            $notify_info = $payjs->notify();
            if(!$notify_info){
                return 'error';
            }
            // 2.验重逻辑
            $where['trade_no'] = $data['out_trade_no'];
            $where['status'] = 1;
            $res=  model('Order')->where($where)->find();
            if($res){
                return '已经处理过了';
            }
            // 3.自身业务逻辑

            Db::name('order')
                ->where('trade_no', $data['out_trade_no'])
                ->update(['status' => '1']);
            // 4.返回 success 字符串（http状态码为200）
            echo 'success';
        }
    }

    public function check(){
        $trade_no = input('post.trade_no');
        $orderInfo = model('order')->where('trade_no',$trade_no)->find();
        if($orderInfo['status']){
            $res = [
                'code' => 1,
                'pic' => $orderInfo["pic"]
            ];
        }else{
            $res = [
                'code' => 0
            ];
        }
        return json($res);
    }

    public function downloadPic(){
        $pic = input('get.pic');
        $path       = \Env::get('root_path') . '/public/static/file/';
        // $objweriter->save($path . '/demo1.xlsx');
        $filename = date('Y-m-d H:i:s', time());
        return download($path . $pic.'.gif', "$filename.gif");
    }
}